1. Field of the Invention
The present invention relates to a method for data transferring, and more particularly, to a method for increasing efficiency of transferring packet of isochronous transfer type.
2. Description of the Prior Art
The Universal Serial Bus (USB) protocol version 3.0 defines four transfer types: control transfer type, interrupt transfer type, bulk transfer type, and isochronous transfer type. In general, isochronous transfer type is applied in audio and video transmissions. However, since the audio and the video transmission have to be real-time transferring, when packets of the isochronous transfer type are transferred, the transmission speed has to be stable without interruption, so as to prevent the audio or the video signals at the receiving end from discontinuous condition, or un-synchronization to the transmitting end.
Please refer to FIG. 1. FIG. 1 is a diagram illustrating the packet format of a USB 3.0 packet DP. USB 3.0 is taken as an example as shown in FIG. 1. The packet DP comprises a header H, and a data payload P. The header H comprises a type information TP, an end point information EP, a link command word LW, and a header error check code CRCH. The data payload P comprises a data session D, and a data error check code CRCD.
The type information TP is utilized for determining the packet type of the packet DP. The packet type, for example, may be handshake, data . . . etc. The end point information EP is utilized for determining the transfer type of the packet DP, such as isochronous transfer type. The link command word LW is utilized for indicating the condition of the data connection, and the link command word LW further comprises a link command word error check code CRCL and a header sequence number HSEQ. The link command word error check code CRCL is utilized for determining if errors exist in the link command word LW. The head sequence number HSEQ is utilized for determining if the packet sequence of the packet DP is incorrect. The header error check code CRCH is utilized for determining if errors exist in the header H.
The data session D provides the actual transmitted data, such as audio data, video data . . . etc. The data error check code CRCD is utilized for determining if errors exist in the data session D. Additionally, the data session D may comprise N data SD1˜SDN.
Please refer to FIG. 2. FIG. 2 is a diagram illustrating the packet of the isochronous transfer type being transferred by the prior art. As shown in FIG. 2, the transmitting end T may be a host or a device, and the receiving end may be a device or a host correspondingly. The data process of the transmitting end T and the receiving end R can be divided into the physical layer PH, the data link layer DL, and the protocol layer PR from the bottom. As shown in FIG. 2, when the receiving end R receives a packet DP1 from the transmitting end T, after the process of the physical layer PH, the data link layer DL of the receiving end DL determines if the header H1 of the packet DP1 is correct directly according to the link command word error check code CRCL1 and the header error check code CRCH1. If the header H1 of the packet DP1 is determined to be correct, then the receiving end R executes the following process according to the header H1 of the packet DP1, and the following process may be uploading the packet DP1 to the protocol layer PR of the receiving end R so as to determine if the data payload P1 is correct according to the data error check code CRCD1 of the data payload P1 of the packet DP1, and after the data payload P1 of the packet DP1 is determined to be correct, generating corresponding actions, e.g. outputting the audio or video data according to the protocol and the content of the data session D1, according to the events defined by the protocol and the content of the data session D1 (data SD11˜SD1N). However, when the data link layer DL of the receiving end R determines the header H1 of the packet DP1 to be incorrect, the data link layer DL of the receiving end R directly sends a retry signal SRETRY to the transmitting end T for requiring the transmitting end T to transmit the packet DP1 again. In other words, even the packet DP1 is of the isochronous transfer type, the receiving end R still sends a retry signal SRETRY to the transmitting end T if the header of the packet DP1 is incorrect. In this way, the transmitting end T has to transmit the packet DP1 of the isochronous transfer type again. Therefore, when the audio or the video data are transmitted, unnecessary delay arises, which deteriorates the discontinuous condition or the un-synchronization, causing inconvenience.